1. Field of the Invention
The preferred embodiment relates generally to data processing systems and, more specifically, to a dynamic policy manager method, system, and computer program product for optimizing fractional resource allocation of a single resource among multiple partitions.
2. Description of the Related Art
A logical partitioned (LPAR) functionality within a data processing system (platform) allows multiple copies of a single operating system (OS) or multiple heterogeneous operating systems to be simultaneously run on a single data processing system platform. A partition, within which an operating system image runs, is assigned a non-overlapping subset of the platform's resources. These platform allocable resources include one or more architecturally distinct processors with their interrupt management area, regions of system memory, and input/output (I/O) adapter bus slots. The partition's resources are represented by the platform's firmware to the OS image.
Each distinct OS or image of an OS running within the platform is protected from each other such that software errors on one logical partition cannot affect the correct operation of any of the other partitions. This is provided by allocating a disjoint set of platform resources to be directly managed by each OS image and by providing mechanisms for ensuring that the various images cannot control any resources that have not been allocated to it. Furthermore, software errors in the control of an operating system's allocated resources are prevented from affecting the resources of any other image. Thus, each image of the OS (or each different OS) directly controls a distinct set of allocable resources within the platform.
With respect to hardware resources in an LPAR system, these resources are disjointly shared among various partitions, themselves disjoint, each one seeming to be a stand-alone computer. These resources may include, for example, input/output (I/O) adapters, memory DIMMs, non-volatile random access memory (NVRAM), and hard disk drives. Each partition within the LPAR system may be booted and shutdown over and over without having to power-cycle the whole system.
In these prior art systems, these resources were allocated in their entirety to logical partitions. Thus, the entire resource was allocated as a single unit to a particular partition. With the virtualization of resources, however, fractions of a resource now may be allocated to partitions. Thus, one physical resource may be divided and allocated to more than one partition at a time. In these systems, a first fraction of a single resource may be allocated to a first partition at the same time that a second fraction is allocated to a second partition and a third fraction is allocated to a third partition.
In known systems, when a resource becomes available fractions of that resource are allocated evenly to the partitions that have requested the resource. The resource is divided up evenly regardless of any policy the system administrator wants to enforce and regardless of whether or not the partitions are actually using the resource. The resource is divided evenly among the requesting users. Typically, a user is a logical partition.
For example, if three users were to be allocated this resource, the resource would be divided into thirds, and each third would be granted to one of the users. At a later time if another user were to request a resource and this resource was chosen to be allocated to the new user, the resource would be divided up evenly among all of the four current users. The resource would be reallocated so that each user would now receive one-fourth of the resource instead of one-third of the resource.
In some known systems, resources are allocated by a reservation method. In these systems, the resources are allocated on a first come, first served basis. In these systems, a user must wait for a resource to become available before a resource will be allocated to that user.
In other systems, sometimes referred to as “on-demand” systems, resources are allocated when a resource is requested. Thus, when a user requests a resource, the system will allocate a resource to the user by reallocating resources, if necessary, that are already allocated to other users.
Therefore, a need exists for a method, apparatus, and computer program product for dynamically allocating fractions of a resource in a data processing system based on a policy and particular customer usage of the data processing system.